package practice4;

import java.util.Scanner;

public class P2678 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();     //家距离公司n米远
        int m=sc.nextInt();     //共有m个红绿灯
        int k=sc.nextInt();     //通过多少个红绿灯可再次使用氮气(瞬移)
        double v=1.0/sc.nextInt();     //行驶速度为1/v;

        double t=0;      //用于记录从出发开始的时间
        int s=0;        //用于记录从出发开始走过的路程
        int count=0;      //用于记录通过的红绿灯数目
        for(int i=0;i<m;i++){
            int a=sc.nextInt();     //与家的距离
            int b=sc.nextInt();     //绿灯持续时间
            int c=sc.nextInt();     //红灯持续时间
            //判断是否可以瞬移到该红绿灯处
            if(count%k!=0){
                t+=(a-s)/v;     //若不可以,需加上花费的时间
            }else {
                t+=0;           //若可以，则瞬移
            }
            s=a;       //更新当前走过的路程
            //计算等红绿灯的时间
            if(t%(b+c) >= b){
                //红灯不可通行,加上等待时间
                t+=c-(t%(b+c)-b);
            }else{
                //绿灯，直接通过
                t+=0;
            }
            count++;
        }
        if(count%k==0){
            t+=0;       //瞬移
        }else{
            t+=(n-s)/v;     //加上剩下的路程
        }
        System.out.println((int)t);
    }
}
